/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package klient;

import wypozyczalnia.*;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import commons.AuthenticationBean;
import commons.DbConnection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Adrian
 */
public class EditUserManager {

    public EditUserManager(){
        this.check=false;
    }    
    private String imie, nazwisko, dokument, seria, miejsce_ur, adres, miasto, kod, mail, telefon, login;
    Date data_ur;
    private boolean rejestracja,check=false;

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date data = new Date();
    int id = 0;

    public boolean isReload(){
        return check;
    }    
    public void wczytaj() {
        try {
            Connection conn = (Connection) DbConnection.getConnection();
            FacesContext context = FacesContext.getCurrentInstance();
            HttpServletRequest myRequest = (HttpServletRequest) context.getExternalContext().getRequest();
            HttpSession mySession = myRequest.getSession();
            this.login = (String) mySession.getAttribute(AuthenticationBean.AUTH_KEY);
            java.sql.PreparedStatement ps = conn.prepareStatement("SELECT u.nazwisko,u.imie,u.dokument_tozsamosci,u.seria,u.data_ur,u.miejsce_ur,u.miasto,u.kod,ulica,u.telefon,u.email FROM uzytkownicy u, dane_logowania d WHERE u.ident_biblioteczny = d.ident_biblioteczny AND d.login=?");
            ps.setString(1,this.login);
            ResultSet rs = ps.executeQuery();
            System.out.println(login);
            
            while(rs.next()){

                this.imie=rs.getString("imie");
                System.out.println(imie + "asdfasdf");
                this.nazwisko=rs.getString("nazwisko");
                this.dokument=rs.getString("dokument_tozsamosci");
                this.seria=rs.getString("seria");
                this.data_ur=rs.getDate("data_ur");
                this.miejsce_ur=rs.getString("miejsce_ur");
                this.miasto=rs.getString("miasto");
                this.kod=rs.getString("kod");
                this.adres=rs.getString("ulica");
                this.telefon=rs.getString("telefon");
                this.mail=rs.getString("email");
            }
            check=true;
        } catch (SQLException ex) {
            Logger.getLogger(EditUserManager.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public String update() {
        try {
            if (kod.length() == 5) {
                kod = new StringBuffer(kod).insert(2, "-").toString();
            }
                        
            Connection conn = (Connection) DbConnection.getConnection();
            PreparedStatement ps = (PreparedStatement) conn.prepareStatement("SELECT ident_biblioteczny from dane_logowania WHERE login=?");
            ps.setString(1, login);
            ResultSet rs = ps.executeQuery();
            while(rs.next()){
                id=rs.getInt("ident_biblioteczny");
            }
            ps = (PreparedStatement) conn.prepareStatement("UPDATE `biblioteka`.`uzytkownicy` SET `data_ur` = ? ,`miejsce_ur` = ? ,`miasto` = ? ,`kod` = ? ,`ulica` = ?,`telefon` = ? ,`email` = ? WHERE ident_biblioteczny = ?");
            ps.setString(1, sdf.format(this.data_ur));
            ps.setString(2, this.miejsce_ur);
            ps.setString(3, this.miasto);
            ps.setString(4, this.kod);
            ps.setString(5, this.adres);
            ps.setString(6, this.telefon);
            ps.setString(7, this.mail);
            ps.setInt(8, this.id);
            ps.executeUpdate();
            return "zaktualizowano";
        } catch (SQLException ex) {
            Logger.getLogger(EditUserManager.class.getName()).log(Level.SEVERE, null, ex);
            return "error";
        }
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getAdres() {
        return adres;
    }

    public void setAdres(String adres) {
        this.adres = adres;
    }

    public Date getData_ur() {
        return data_ur;
    }

    public void setData_ur(Date data_ur) {
        this.data_ur = data_ur;
    }

    public String getDokument() {
        return dokument;
    }

    public void setDokument(String dokument) {
        this.dokument = dokument;
    }

    public String getImie() {
        return imie;
    }

    public void setImie(String imie) {
        this.imie = imie;
    }

    public String getKod() {
        return kod;
    }

    public void setKod(String kod) {
        this.kod = kod;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }

    public String getMiasto() {
        return miasto;
    }

    public void setMiasto(String miasto) {
        this.miasto = miasto;
    }

    public String getMiejsce_ur() {
        return miejsce_ur;
    }

    public void setMiejsce_ur(String miejsce_ur) {
        this.miejsce_ur = miejsce_ur;
    }

    public String getNazwisko() {
        return nazwisko;
    }

    public void setNazwisko(String nazwisko) {
        this.nazwisko = nazwisko;
    }

    public boolean isRejestracja() {
        return rejestracja;
    }

    public void setRejestracja(boolean rejestracja) {
        this.rejestracja = rejestracja;
    }

    public String getSeria() {
        return seria;
    }

    public void setSeria(String seria) {
        this.seria = seria;
    }

    public String getTelefon() {
        return telefon;
    }

    public void setTelefon(String telefon) {
        this.telefon = telefon;
    }

    public boolean isCheck() {
        return check;
    }

    public void setCheck(boolean check) {
        this.check = check;
    }
    
    private Object StringBuffer(String kod) {
        throw new UnsupportedOperationException("Not yet implemented");
    }
}
